feat(web): persist modelOptions, refactor provider specific logic#1121
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Very needed QOL feature. It’s very annoying having to switch models every time you start a new thread. |
|
Updating fast mode in newer threads affects the mode in older threads see below: Edit: Looked a bit deeper, it seems older threads only stay isolated if they have an explicit per thread override in the draft store. If they do not, they inherit the shared sticky value pr1121-review-compressed-noaudio.mp4 |
|
@maskdotdev lmk if its fixed now |
awesome work! its fixed |
8a99b59 to
4fc2b90
Compare
| } | ||
| }); | ||
|
|
||
| it("snapshots sticky codex traits into a new draft thread", async () => { |
There was a problem hiding this comment.
would be good with another test that asserts precedence of draft state -> sticky composer settings -> defaults
4e5be2b to
92c5dee
Compare
Co-authored-by: codex <codex@users.noreply.github.com>
92c5dee to
5d3f329
Compare
- Store sticky model and trait options separately for Codex and Claude - Share model/trait resolution logic across composer UI - Add coverage for provider selection and sticky trait persistence
…ngdotgg#1121) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com>
…ngdotgg#1121) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: codex <codex@users.noreply.github.com>
Ported from pingdotgg/t3code (bc12421..9e29c9d): - feat: persist modelOptions, refactor provider-specific logic (pingdotgg#1121) Sticky model/options in composer, composerProviderRegistry, shared resolveSelectableModel utility - fix(ChatView): update scroll button styles (pingdotgg#1246) - fix(web): show health banner for selected provider (pingdotgg#1223) - fix(web): update add-project toggle label in cancel state (pingdotgg#1248) - Prefer Claude user ID for telemetry identity (pingdotgg#1249) - feat: configurable base directory (pingdotgg#826) Renamed stateDir → baseDir, T3CODE_STATE_DIR → T3CODE_HOME, deriveServerPaths for attachmentsDir/logsDir/dbPath/anonymousIdPath All changes adapted for Krabby branding and merged with existing features. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…draft threads, settings refactor Merges 18 upstream commits including: - feat: terminal toggle button in chat header (pingdotgg#633) - feat: resizable chat sidebar (pingdotgg#1347) - feat: stream git hook progress events (pingdotgg#1214) - feat: configurable base directory (pingdotgg#826) - feat: persist model options (pingdotgg#1121) - refactor: simplify settings layout (pingdotgg#1288) - refactor: flatten Git service layer (pingdotgg#1255) - fix: draft-thread project scripts (pingdotgg#1178) - fix: draft attachment persistence warnings (pingdotgg#1153) - fix: PTY adapter runtime loading (pingdotgg#1311) - fix: Claude SDK filesystem settings (pingdotgg#1334) - Various UI fixes and polish Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
What Changed
model,thinking effort, andfast modein local browser stateWhy
When you changed these in one thread and opened another, they reset.
This keeps the last used Codex settings sticky across thread switching and app reloads, without changing
planmode or access mode.I and some people may prefer models in medium over high and only would want to use high in some threads
Closes #384
Supersedes #1004
Supersedes #1056
Checklist
151224.mp4
(sorry for the crappy demo, the macbook its on its way)
Note
Persist sticky model and model options across new threads in the composer
stickyModelandstickyModelOptionsto the persisted composer draft store, so model/provider selections and traits (effort, fast mode, thinking) carry over when creating a new thread.useHandleNewThreadnow inherit the sticky model, its inferred provider, and any sticky model options from the store.setProviderModelOptionsto the store for targeted per-provider option updates, with an optionalpersistStickyflag used byClaudeTraitsPickerandCodexTraitsPickerwhen traits change.composerProviderRegistryto centralize provider-specific composer state, traits menu, and traits picker rendering, replacing inline conditional logic inChatView.resolveSelectableModelin@t3tools/shared/modelto map user input (slug, display name, or alias) to a canonical model slug, now used byProviderModelPickerandresolveAppModelSelection; the latter now accepts provider-indexed custom models instead of a flat array.Macroscope summarized ab1e7c7.